Skip to content

Conversation

@slaemmer
Copy link

@slaemmer slaemmer commented Jan 9, 2026

Purpose

JIRA Issues:

Libraries need to inform current borrowers when a hold request is placed on their borrowed item, especially when circulation policies prevent renewal of items with active holds. Without this notification, borrowers may mistakenly assume they can renew their items and fail to return them on time.

This PR implements backend support for automatic patron notifications when hold requests (item-level or title-level) are placed on borrowed items.

Approach

Core Implementation:

  1. Added HoldNoticeSender class: Separated hold-specific notice logic for better separation of concerns and maintainability.

  2. Notice event type: Added HOLD_REQUEST_FOR_ITEM notice event type that integrates with FOLIO's existing patron notice infrastructure. The UI configuration (UICIRC-1245) allows staff to select this as a triggering event in patron notice policies.

  3. Notification logic:

    • Item-level holds: Sends notice only to the borrower of the specific requested item
    • Title-level holds: Sends notices to all current borrowers of any item belonging to that title
  4. Per-item hold checking for title-level requests: When a title-level hold is placed, the system checks each item individually to avoid duplicate notifications. For example:

    • If Copy 1 already has an item-level hold (borrower already notified)
    • And a title-level hold is placed
    • Only borrowers of copies without existing holds receive notices
  5. Event publishing: Publishes LOG_RECORD events when hold notices are sent for audit trail.

mhamann-ubl and others added 4 commits November 7, 2025 11:18
- Extract HoldNotices in separate sender
- Fix title level notices not sending by reusing item-level patron notice template for title level notices
- Publish LOG_RECORD event when hold notice is placed and sent
- Add tests
@sonarqubecloud
Copy link

sonarqubecloud bot commented Jan 9, 2026

@slaemmer slaemmer requested review from a team and alexanderkurash January 9, 2026 14:34
@slaemmer slaemmer marked this pull request as draft January 21, 2026 14:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants